The subject matter generally relates to file transfers and specifically to simultaneous file transfer and copy actions among a number of electronic devices.
Consider a situation where a huge file is being copied from Host A to Host B and soon Host C wants to copy the same file from Host B. In this kind of scenario, with conventional arrangements, Host C cannot start the file copy from Host B unless the copy operation from Host A to Host B is complete. Even if Host C would start the file copy from Host B before the copy operation from Host A to Host B is complete, Host C will end up getting partial file or the copy operation will not succeed due to error (for example, if the file is opened by some other process). This kind of a scenario is common for example when publishing builds, which is required by several developers (there are many other similar scenarios).
Some conventional approaches include Peer-to-Peer file sharing protocols. These peer-to-peer protocols are designed to achieve file transfer by making peers as both suppliers and consumers of resources, in contrast to the traditional client-server model (which is most commonly used) where only servers supply, and clients consume. Peer-to-peer file sharing protocols have significant difference as they do not allow for simultaneous file transfer and copy unless a peer completely downloads the file.
Another solution is to simply engage in a piecemeal process. That is, start the file copy from Host B to Host C only after the copy operation from Host A to Host B is completed. This is a manual process and the time required to get a copy of the file onto Host C is enlarged, as the copy action cannot start before the copy operation from Host A to Host B is completed.